package com.kawa.kemanage.service;

import com.github.pagehelper.PageInfo;
//import com.kawa.kemanage.entity.DTO.CommentDto;
import com.kawa.kemanage.entity.NewsComments;
import com.kawa.kemanage.entity.dto.CommentDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface NewsCommentsService {
    /**
     * 获取评论列表
     * @param pageNo 页码
     * @param pageSize 每页大小
     * @param contentId 文章ID（可选）
     * @return 分页评论列表
     */
    PageInfo<NewsComments> getCommentList(Integer pageNo, Integer pageSize, Long contentId);

    /**
     * 搜索评论
     * @param keyword 关键词
     * @param pageNo 页码
     * @param pageSize 每页大小
     * @return 分页评论列表
     */
    PageInfo<NewsComments> searchComments(String keyword, Integer pageNo, Integer pageSize);

    /**
     * 添加评论
     * @param comment 评论信息
     * @return 是否成功
     */
    boolean addComment(NewsComments comment);

    /**
     * 删除评论
     * @param commentId 评论ID
     * @return 是否成功
     */
    boolean deleteComment(Long commentId);

    /**
     * 获取评论详情
     * @param commentId 评论ID
     * @return 评论信息
     */
    NewsComments getCommentById(Long commentId);

    /**
     * 获取评论的回复列表
     * @param parentCommentId 父评论ID
     * @return 回复列表
     */
    List<NewsComments> getReplies(Long parentCommentId);

    /**
     * 更新评论点赞数
     * @param commentId 评论ID
     * @param increment 增量
     * @return 是否成功
     */
    boolean updateLikeCount(Long commentId, int increment);

    /**
     * 查询评论总数
     *
     * @param
     * @return
     */
    List<NewsComments> commentCount();

    /**
     * 查询个人评论
     */
    List<CommentDTO> getCommentsByAuthorId(@Param("userId") Long userId);

    boolean readCommentMessage(CommentDTO commentDTO);

    /**
     * 获取文章评论数
     * @param contentId
     * @return
     */
    Integer getCommentNumById(Long contentId);
}
